package com.menqui.localizame.webservice;

import java.net.URI;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;

import android.util.Log;

import com.menqui.localizame.constantes.ConstantesConfiguracion;
import com.menqui.localizame.estructuras.DatosRuta;
import com.menqui.localizame.estructuras.DatosUsuario;

public class LocalizameWebService {


	private static String LOG_TAG = LocalizameWebService.class.toString();

	public static List<DatosUsuario> listarUsuarios() {

		List<DatosUsuario> resultado = new ArrayList<DatosUsuario>();
		String peticion = ConstantesConfiguracion.URL_SERVIDOR + "listAmigos?datos=" + ConstantesConfiguracion.USERNAME;
		String responseString = procesarSolicitudWebservice(peticion);

		if (responseString.length() > 0){
			String[] usuarios = responseString.split(";");
			for (String iter : usuarios){
				String[] datosUsuario = iter.split(",");
				resultado.add(new DatosUsuario(Integer.valueOf(datosUsuario[0]), datosUsuario[1]));
			}
		}


		return resultado;
	}

	public static List<DatosRuta> listarRutas(String string) {

		List<DatosRuta> resultado = new ArrayList<DatosRuta>();

		String peticion = ConstantesConfiguracion.URL_SERVIDOR + "listRutas?datos=" + ConstantesConfiguracion.USERNAME;
		String responseString = procesarSolicitudWebservice(peticion);

		if (responseString.length() > 0){
			String[] rutas = responseString.split(";");
			for (String iter : rutas){
				String[] datosUsuario = iter.split(",");
				DatosRuta ruta = new DatosRuta();
				ruta.setIdRuta(Long.valueOf(datosUsuario[0]));
				ruta.setNombreRuta(datosUsuario[1]);
				resultado.add(ruta);
			}
		}

		return resultado;
	}

	public static void addAmigoToRuta(String idAmigo, String idRuta) {

		String peticion = ConstantesConfiguracion.URL_SERVIDOR + "addAmigoToRuta?datos=" + idAmigo + ";" + idRuta;

		procesarSolicitudWebservice(peticion);
	}

	public static String procesarSolicitudWebservice(String peticion) {
		HttpGet request = new HttpGet();
		String responseString = "";
		try {
			DefaultHttpClient httpClient = new DefaultHttpClient();

			request.setURI(new URI(peticion));

			HttpResponse response = httpClient.execute(request);
			responseString = EntityUtils.toString(response.getEntity());
			httpClient.getConnectionManager().shutdown();
		} catch (Exception e) {
			Log.e(LOG_TAG, "Error Comunicacion ", e);
		}
		return responseString;
	}
}
